package com.zpark.se.lambda;

/**
 * 1、作为参数使用Lambda表达式
 */
public class Demo02 {
    /*
     * 需求：定义一个方法，接收两个int类型的参数，返回较大的那个
     * 使用lambda表达式实现
     */
    public int fun1(IStudentDao dao, int a, int b){
        // 判断a和b的大小，返回较大的那个
        int max = dao.max(a, b);
        return max;
    }

    public static void main(String[] args) {
        // 调用fun1方法
        Demo02 d1 = new Demo02();
        // 通过匿名内部类的方式创建接口实现类独享
        IStudentDao isd = new IStudentDao() {
            @Override
            public int max(int n1, int n2) {
                return n1 > n2 ? n1 : n2;
            }
        };
        // 调用fun1方法
        d1.fun1(isd, 10, 20);

        d1.fun1(new IStudentDao() {
            @Override
            public int max(int n1, int n2) {
                return n1 > n2 ? n1 : n2;
            }
        }, 10, 20);
        // 将lambda表达式作为参数传递给方法
        int max = d1.fun1((n1, n2) -> n1 > n2 ? n1 : n2, 10, 20);

        System.out.println(max);
    }
}
